package com.yc.cloud.openai.portal.service;

import org.springframework.web.multipart.MultipartFile;

import com.yc.cloud.openai.portal.dto.HistoryDto;
import com.yc.cloud.openai.portal.dto.PromptDto;
import com.yc.cloud.openai.portal.dto.QueueDto;
import com.yc.cloud.openai.portal.dto.UploadImageDto;
import com.yc.cloud.openai.portal.dto.request.TextToImageHistoryRequest;
import com.yc.cloud.openai.portal.dto.request.TextToImageInterruptRequest;
import com.yc.cloud.openai.portal.dto.request.TextToImageQueueCancelRequest;
import com.yc.cloud.openai.portal.dto.request.TextToImageQueueRequest;
import com.yc.cloud.openai.portal.dto.request.TextToImageRequest;
import com.yc.cloud.openai.portal.dto.request.TextToImageUploadRequest;
import com.yc.cloud.openai.portal.dto.response.ComfyUiQueueResponse;

public interface TextToImageService {

    /**
     * 文本转图片
     *
     * @param request 请求参数
     * @return 响应结果
     */
    PromptDto convertTextToImage(TextToImageRequest request);

    /**
     * 获取队列状态
     *
     * @return 队列状态
     */
    QueueDto queue(TextToImageQueueRequest request);

    /**
     * 获取历史记录
     *
     * @param request 请求参数
     * @return 历史记录
     */
    HistoryDto history(TextToImageHistoryRequest request);

    /**
     * 取消排队中的队列(delete 单个,clear 全部)
     *
     * @param request 请求参数
     * @return 取消结果
     */
    ComfyUiQueueResponse cancelQueue(TextToImageQueueCancelRequest request);

    /**
     * 中断任务
     *
     * @param request 请求参数
     * @return 中断结果
     */
    boolean interrupt(TextToImageInterruptRequest request);

    /**
     * 上传图片
     *
     * @param request 请求参数
     * @param file 图片文件
     * @return 上传结果
     */
    UploadImageDto upload(TextToImageUploadRequest request, MultipartFile file);
}
